#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "analyse_chaine.h"

/*
        Description de la fonction
        ==========================-
        Fonction qui doit lire une ligne et retourner le premier mot + \0 different de tab et space
        puis place dans pmot_suiv le pointeur vers le mot suivant
*/
char *lire_mot(char* str,char**pmot_suiv){
        int i = 0 ;
        while(isspace(str[i])) i++;
        if(str[i]==0)
                return NULL; //si on depasse la chaine on ressort
        else{
                char* temp = allouer(strlen(str)+1);
                int j = 0, chaine ;
                if(str[i]=='"') { //si la chaine commence par un guillemet ", le mot est une chaine
                        chaine = 1;
                        i++;
                        temp[j]='"';
                        j++;
                }
                else
                chaine = 0;
        /*
                dans cette boucle on gere 2 cas
                        - premier cas: on a une chaine du type "ma chaine" consideree comme un seul mot
                        - deuxieme cas: on a une chaine du type print bonjour consideree comme 2 mots
        */      while((i<strlen(str))&&(chaine)&&(str[i]!='"') || (!chaine)&&(!isspace(str[i]))&&(i<strlen(str)))
                {
                        temp[j] = str[i];
                        j++; i++;
                }
                if(i-1>=strlen(str))
                        return NULL; //si la chaine est invalide comme " ma chaine
                else{
                    temp[j] ='\0';
                    if(chaine) i++;
                    *pmot_suiv  = dupliquer( str+i);
                    return dupliquer(temp);
                }
        }
}
